Synchronized cylinder event based spark

ABSTRACT

A method to deliver spark during a start for an internal combustion engine is described. The method provides individual cylinder spark angle control based on the number of cylinders after synchronization between engine timing and an engine controller are achieved. The method offers improved engine emissions while maintaining engine speed run-up performance.

FIELD OF INVENTION

[0001] The present invention relates to a method for controlling aninternal combustion engine and more particularly to a method foradjusting spark based on the number of cylinder events aftersynchronization has occurred between engine timing and an enginecontroller during a start.

BACKGROUND OF THE INVENTION

[0002] Engine starting control has a significant impact on engineemissions and engine speed run-up. Spark placement, relative to pistonposition influences both torque and emissions. Torque is necessary toaccelerate an engine from cranking speed up to idle speed. Further, lowstarting emissions are desirable when catalysts are cold and theirefficiency is low. In general, advancing spark increases engine torquewhile retarding spark reduces emissions. Therefore, it is important toprovide consistent well-placed spark timing to ensure engine speedrun-up with reduced emissions.

[0003] One method to adjust spark while an engine is cold is describedin U.S. Pat. No. 6,135,087. This method provides spark advance based oncoolant temperature and engine speed. Further, the amount of sparkadvance accounts for engine position and time from the start-to-runtransfer. More particularly, the method initially determines whether thedesired spark advance is before top-dead-center and whether the throttleis open. If so, the method uses engine speed and coolant temperature todetermine a spark advance multiplier. Thereafter, the current engineposition pulse is loaded and an engine position multiplier isinterpolated and applied to the spark advance multiplier value. Next,the time since the start-to-run is loaded and a start-to-run multiplieris interpolated and applied to the spark advance multiplier value.Finally, the spark is advanced via the spark advance multiplier value asadjusted by the engine position pulse multiplier and the time sincestart-to-run transfer multiplier. Upon engine operation reaching anafter top-dead-center condition or when the throttle is closed, themethod is exited and the engine is returned to normal spark control.

[0004] The inventors herein have recognized several disadvantages ofthis approach. Namely, the approach changes spark advance based onengine position, whether or not engine timing is aligned with an enginecontroller operation, termed here as “synchronization”. In other words,when an engine is turned off, it generally stops at a random position.In general, key-off removes power from the engine controller and sensorsso that engine position data is lost. Consequently, the enginecontroller monitors several signals during a start to reestablish engineposition. Thus, engine position is changing while the engine controllermonitors cam and crank signals, attempting to determine engine positionand synchronization. The number of cylinder events before engineposition can be established will vary from start to start depending onwhere the engine has stopped and on the complexity of the engineposition monitoring system. Therefore, if spark based on position isdelivered without regard to synchronization between the enginecontroller and the engine, or without regard to fuel delivery, the angleat which spark is delivered may vary from start to start.

[0005] As an example, a fueled cylinder receiving spark may receivespark at an angle intended for the next or prior fueled cylinder. Assuch, engine position based spark as presented in the prior art, maydeliver less than optimal spark.

[0006] Furthermore, the method functions only when base spark advance isafter top-dead-center (ATDC) and if the throttle is open. Therefore, theabove-mentioned approach does not optimally deliver spark during startwhere the throttle is closed and retarded spark is used to loweremissions.

[0007] Another method to adjust spark when an engine is cold isdescribed in U.S. Pat. No. 5,483,946 owned by the assignee of thepresent invention. The method describes retarding ignition timing from anominal value during a period following engine start and returning theignition timing to the nominal value by termination of the period, wherethe period is based on time.

[0008] The inventors herein have also recognized that while thisapproach works well during cold engine operation, it can be inaccurateduring start because the method adjusts spark in relation to time. Sparkbased on time delivers a spark advance that is a function of time sincethe timer is started. However, there is not a one to one relationshipbetween engine position and time due to variability in engine stoppinglocation as described above. Further, engine position is a mechanicaldimension; time is a continuum, which lacks spatial dimensions.

SUMMARY OF THE INVENTION

[0009] One embodiment of the present invention includes a method thatimproves spark placement and consistency during start. The methodcomprises: counting a number of cylinder events after synchronizationbetween engine timing and a engine controller is determined; andadjusting cylinder spark angle based on said counted number of cylinderevents. This method can be used to reduce the above-mentionedlimitations of the prior art approaches.

[0010] By counting the number of cylinder events after synchronization,and delivering spark based on the cylinder count, the inventors hereinhave improved engine starting. In this embodiment, spark and fueldelivery are delayed until synchronization is achieved. Thereafter,cylinder event counting, fuel delivery, and spark delivery begin. Inother words, the controller can coordinate spark and fuel delivery inunison. Therefore, the first fueled cylinder and subsequent cylinderswill receive consistent spark, start after start, and independent ofstopping location. This can be advantaged to produce low emissions anduniform engine speed run-up.

[0011] Further, another advantage of the present invention, derived fromcounting the number of cylinder events after synchronization, is that abetter match between cylinder mixture and spark advance is possible. Theinventors herein have recognized that during a start, changes occurwithin an engine and its surroundings. The first few fired cylindershave an air fuel mixture that is composed of fresh charge and fuel. Inother words, there is very little EGR or residuals during the first fewcombustion events. After the first few cylinders fire and expel theirresiduals, the residuals affect mixtures in other cylinders. Theappropriate spark angle changes with the amount of residual and thenumber of cylinder events after synchronization determine the residualamount. Therefore, the combustion process in an engine is not linked totime, but to the number of cylinder events after synchronization hasoccurred.

[0012] Furthermore, since cylinders receiving fuel have distinctindividual air-fuel-residual mixtures, it is desirable to provide sparksuited to these mixtures. Spark delivery based on the number of cylinderevents after synchronization allows the engine controller to deliverunique spark angles to individual cylinders. This allows the enginecontroller to account for individual cylinder air-fuel mixturedifferences.

[0013] In addition, fuel composition also affects mixture preparationand may influence engine speed run-up. Fuels containing alcohol providesless energy affecting torque and engine speed. If spark is deliveredbased on engine speed and load, the controller may alter the spark in anundesirable manor. Therefore, spark delivery that solely or additionallytakes into account the counted number of cylinders aftersynchronization, can be used to improve spark placement consistency withregard to engine control and combustion mixtures.

[0014] The present invention provides a number of advantages. Thepresent invention provides the advantage of improved spark controlduring engine starting, resulting in lower emissions. This advantage isespecially beneficial when a catalyst is cold and its efficiency is low.In addition, the present invention improves engine speed run-upconsistency. Repeatable engine speed during starting improves ownerconfidence and satisfaction since the engine behaves in a reliable andpredictable manor.

[0015] The above advantages and other advantages and features of thepresent invention will be readily apparent from the following detaileddescription of the preferred embodiments when taken in connection withthe accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0016] The advantages described herein will be more fully understood byreading an example of an embodiment in which the invention is used toadvantage, referred to herein as the Description of Invention, withreference to the drawings, wherein:

[0017]FIG. 1 is a schematic diagram of an engine wherein the inventionis used to advantage;

[0018]FIG. 2 is a high level flow chart describing fueled cylinder eventbased spark during a start;

[0019]FIG. 3 is a high level flow chart describing synchronized cylinderevent based spark during a start;

[0020]FIG. 4 is a high level flow chart of an alternate methoddescribing fueled cylinder event based spark during a start;

[0021]FIG. 5 is a high level flow chart of an alternate methoddescribing synchronized cylinder event based spark during a start;

[0022]FIG. 6 is a plot showing an example of conventional time basedspark and the hydrocarbon emissions produced during a start;

[0023]FIG. 7 is a plot showing fueled cylinder event based spark and thehydrocarbon emissions produced during a start;

[0024]FIG. 8 is a table of example spark delivered during a start;

[0025]FIG. 9 is a high level flow chart describing sequential fuelcontrol (SEFI); and

[0026]FIG. 10 is a high level flow chart describing Big-Bang fueling.

DESCRIPTION OF INVENTION

[0027] Referring to FIG. 1, internal combustion engine 10, comprising aplurality of cylinders, one cylinder of which is shown in FIG. 1, iscontrolled by electronic engine controller 12. Engine 10 includescombustion chamber 30 and cylinder walls 32 with cam shaft 130 andpiston 36 positioned therein and connected to crankshaft 40. Combustionchamber 30 is known communicating with intake manifold 44 and exhaustmanifold 48 via respective intake valve 52 an exhaust valve 54. Intakemanifold 44 is also shown having fuel injector 66 coupled thereto fordelivering liquid fuel in proportion to the pulse width of signal FPWfrom controller 12. Fuel is delivered to fuel injector 66 by fuel system(not shown) including a fuel tank, fuel pump, and fuel rail (not shown).Alternatively, the engine may be configured such that the fuel isinjected directly into the combustion chamber, which is known to thoseskilled in the art as direct injection. Intake manifold 44 is showncommunicating with throttle body 58 via throttle plate 62.

[0028] Conventional distributorless ignition system 88 provides ignitionspark to combustion chamber 30 via spark plug 92 in response tocontroller 12. Two-state exhaust gas oxygen sensor 76 is shown coupledto exhaust manifold 48 upstream of catalytic converter 70. Two-stateexhaust gas oxygen sensor 98 is shown coupled to exhaust manifold 48downstream of catalytic converter 70. Sensor 76 provides signal EGO1 tocontroller 12. Alternatively, a Universal Exhaust Gas Oxygen sensor maybe used for sensor 98.

[0029] Controller 12 is shown in FIG. 1 as a conventional microcomputerincluding: microprocessor unit 102, input/output ports 104, andread-only memory 106, random access memory 108, and a conventional databus. Controller 12 is shown receiving various signals from sensorscoupled to engine 10, in addition to those signals previously discussed,including: engine coolant temperature (ECT) from temperature sensor 112coupled to cooling sleeve 114; a measurement of manifold absolutepressure (MAP) form pressure sensor 122 coupled to intake manifold 44; ameasurement (ACT) of engine air amount temperature or manifoldtemperature from temperature sensor 117; a cam position signal (CAM)from cam sensor 150; and a profile ignition pickup signal (PIP) from aHall effect sensor 118 coupled to a crankshaft 40, and an engine speedsignal (RPM) from engine speed sensor 119. In a preferred aspect of thepresent invention, engine speed sensor 119 produces a predeterminednumber of equally spaced pulses every revolution of the crankshaft.

[0030] Referring to FIG. 2, a flowchart of a routine performed bycontroller 12 when spark based on the number of fueled cylinder eventsis desired. The period of the cylinder event signal in degrees is:720/number of engine cylinders. The cylinder event signal identifieswhen a given engine cylinder reaches top-dead-center of compressionstroke.

[0031] In step 210, engine operating conditions are read. Operatingconditions are determined by measuring engine coolant temperature,engine air temperature, barometric pressure, catalyst temperature, timesince engine last operated (soak time), and parameters alike. Theseparameters are used to compensate the engine spark angle request insteps 216 and 218. The parameters influence engine operation indifferent ways depending on their state. For example, lower catalysttemperatures produce spark angle retard, but higher catalysttemperatures advance spark angle.

[0032] In step 212, the routine decides to proceed based on whether theengine is rotating. If the engine is not rotating, the routine waitsuntil the crank position sensor 118 detects engine rotation. If theengine is rotating, the routine proceeds to step 214. In step 214, thecontroller determines if a fueled cylinder event has occurred. If so,the fueled cylinder event counter is incremented and the routineproceeds to step 216. If no newly fueled cylinders have occurred, theroutine waits until a fueled cylinder event is observed.

[0033] In step 216, the desired spark request is looked-up from thetable in FIG. 8, FNESPK. The spark values in the table will depend onhow the engine is being controlled. Some applications will prefer a leancylinder air-fuel mixture promoting port oxidation, while otherapplications will prefer a rich air-fuel mixture with air injected intothe exhaust manifold. Because the in-cylinder mixtures are different,their spark requirements are also different, prompting differences inthe FNESPK table based on the application. FIG. 8 is an example of sparkdemand for lean in cylinder air-fuel mixtures.

[0034] After the desired spark is determined, the routine advances tostep 218. In step 218, the spark may be modified depending on engineoperating conditions observed in step 210. Compensation for barometricpressure is stored in a function named FNBP. Depending on where nominalbarometric pressure is defined in the function, spark is advanced orretarded from that point to achieve desired emissions and engine speedrun-up. The function has x dimensions of inches of Mercury and ydimensions of change (Δ) in spark, with units of angular degrees.Positive values in the function advance spark while negative valuesretard spark.

[0035] Compensation is also provided for catalyst temperature byfunction FNCAT. In general, FNCAT is calibrated to retard spark angle atlower catalyst temperatures and advances spark angle at higher catalysttemperatures. Catalyst temperature may be measured or inferred. Thefunction has x dimensions of degrees Fahrenheit and y dimensions ofchange (Δ) in spark, with units of angular degrees.

[0036] Compensation for time since last engine operation, soak time, iscaptured in function FNST. In general, FNST is calibrated to retardspark as soak time increases and advance spark as soak time increases.The function has x dimensions of soak time in seconds and y dimensionsof change (Δ) in spark, with units of angular degrees.

[0037] All sources of spark compensation are combined into a singlechange in spark demand that is used to modify the spark angle from step216. The routine then proceeds to step 220 where compensation foroperator input is provided. Operator input may take a number of formsincluding but not limited to: changing throttle position, load requestvia electronic throttle or electronically controlled valves, torquerequest, air conditioning, or any device or system that increases loadon the engine. In this example, operator input is throttle position. Ifthe operator inputs a demand to the throttle, the throttle signal isprocessed through the function FNTHROTTLE. The function has x dimensionsof throttle position with units of volts and y dimensions of change (Δ)in spark, with units of angular degrees. The function is calibrated toadvance spark as the throttle input increases, other inputs would followthe same form, increasing user demand advances spark. If the operatorinput is substantially zero, or less than a predetermined amount (e.g.,1-10%, or less than 5%, of total displacement), the function provides nocompensation for the operator input. The routine proceeds to step 222where the desired spark angle is delivered to the engine.

[0038] The routine then proceeds to step 224 where the decision is madeto continue delivering spark based on the number of fueled cylinderevents or exit to another method of spark control, e.g., independent ofthe number of fueled cylinder events. If the current number of fueledcylinder events is not less than the calibration parameter EVT_LIM, thenthe routine proceeds to step 214. If the number of fueled cylinderevents is greater than or equal to EVT_LIM, the routine proceeds to step226. In step 226, a transition is made from fueled cylinder event basedspark to another method of spark control. For example, time based sparkcontrol, where a timer is started after the last fueled cylinder eventbased spark is delivered and then spark is delivered as a function oftime.

[0039] Alternatively, the routine may be designed to transition tospeed/load based spark. However, care should be exercised in thetransition since spark based on engine speed/load can be influenced bybarometric pressure during starting because there is less oxygen ataltitude than when at sea level. Once the transition to the alternatespark control method is complete, the routine is exited.

[0040] Referring to FIG. 3, a flowchart of a routine performed bycontroller 12 when spark based on the number of synchronized cylinderevents is desired. Synchronization occurs when engine timing is alignedwith engine controller operation. In step 310, engine operatingconditions are read. Operating conditions are determined by measuringengine coolant temperature, engine air temperature, barometric pressure,catalyst temperature, time since engine last operated (soak time), andparameters alike. These parameters are used to compensate the enginespark angle request in steps 318 and 320. The parameters influenceengine operation in different ways depending on their state. Forexample, lower catalyst temperatures produce spark angle retard, buthigher catalyst temperatures advance spark angle.

[0041] In step 312, the routine decides to proceed based on whether theengine is rotating. If the engine is not rotating, the routine waitsuntil the crank position sensor 118 detects engine rotation. If theengine is rotating, the routine proceeds to step 314. In step 314, thecontroller determines if a synchronized cylinder event has occurred, ifso, the synchronized cylinder event counter increments and the routinecontinues on to step 316. If no new synchronized cylinder events haveoccurred, the routine waits until a synchronized cylinder event isobserved.

[0042] Engine and controller synchronization is determined in step 316.If the controller observes signals that allow determination of engineposition, the engine controller aligns operations, spark and fueldelivery, to engine timing, becoming synchronized. Upon synchronizationthe event counter is set to zero and the routine continues to step 318.If the engine and the controller are already synchronized, the routineagain proceeds to step 318. If synchronization is not established and ifsynchronization cannot be established, the routine returns to step 314.

[0043] In step 318, the desired spark request is looked-up from thetable similar to the table in FIG. 8, FNESPK. However, spark values usedby step 318 are based on cylinder events after synchronization insteadof fueled cylinder events as is described by FIG. 8. The spark values inthe table will depend on how the engine is being controlled. Someapplications will prefer a lean cylinder air-fuel mixture promoting portoxidation, while other applications will prefer a rich air-fuel mixturewith air injected into the exhaust manifold. Because the in-cylindermixtures are different, their spark requirements are also different,prompting differences in the FNESPK table based on the application.

[0044] After the desired spark is determined, the routine advances tostep 320. In step 320, the spark may be modified depending on engineoperating conditions observed in step 310. Compensation for barometricpressure is stored in a function named FNBP. Depending on where nominalbarometric pressure is defined in the function, spark is advanced orretarded from that point to achieve desired emissions and engine speedrun-up. The function has x dimensions of inches of Mercury and ydimensions of change (Δ) in spark, with units of angular degrees.Positive values in the function advance spark while negative valuesretard spark.

[0045] Compensation for air charge temperature is stored in a functionnamed FNACT. Depending on where nominal air charge temperature isdefined in the function, spark is advanced or retarded from that pointto achieve desired emissions and engine speed run-up. The function has xdimensions of air charge temperature in degrees Fahrenheit and ydimensions of change (Δ) in spark, with units of angular degrees.

[0046] Compensation is also provided for catalyst temperature byfunction FNCAT. In general, FNCAT is calibrated to retard spark angle atlower catalyst temperatures and advances spark angle at higher catalysttemperatures. Catalyst temperature may be measured or inferred. Thefunction has x dimensions of degrees Fahrenheit and y dimensions ofchange (Δ) in spark, with units of angular degrees.

[0047] Compensation for time since last engine operation, soak time, iscaptured in function FNST. In general, FNST is calibrated to retardspark as soak time increases and advance spark as soak time increases.The function has x dimensions of soak time in seconds and y dimensionsof change (Δ) in spark, with units of angular degrees.

[0048] All sources of spark compensation are combined into a singlechange in spark demand that is used to modify the spark angle from step318. The routine then proceeds to step 322 where compensation foroperator input is provided. Operator input may take a number of formsincluding but not limited to: changing throttle position, load requestvia electronic throttle or electronically controlled valves, torquerequest, air conditioning, or any device or system that increases loadon the engine. In this example, operator input is throttle position. Ifthe operator inputs a demand to the throttle, the throttle signal isprocessed through the function FNTHROTTLE The function has x dimensionsof throttle position with units of volts and y dimensions of change (Δ)in spark, with units of angular degrees. The function is calibrated toadvance spark as the throttle input increases, other inputs would followthe same form, increasing user demand advances spark. If the operatorinput is substantially zero, or less than a predetermined amount (e.g.,1-10%, or less than 5%, of total displacement), the function provides nocompensation for the operator input. The routine proceeds to step 324where the desired spark angle is delivered to the engine.

[0049] The routine then proceeds to step 326 where the decision is madeto continue delivering spark based on the number of synchronizedcylinder events or exit to another method of spark control, e.g.,independent of the number of synchronized cylinder events. If thecurrent number of synchronized cylinder events is not less than thecalibration parameter EVT_LIM, then the routine proceeds to step 314. Ifthe number of synchronized cylinder events is greater than or equal toEVT_LIM, the routine proceeds to step 328. In step 328, a transition ismade from synchronized cylinder event based spark to another method ofspark control. For example, time based spark control, where a timer isstarted after the last synchronized cylinder event based spark isdelivered and then spark is delivered as a function of time.

[0050] Alternatively, the routine may be designed to transition tospeed/load based spark. However, care should be exercised in thetransition since spark based on engine speed/load can be influenced bybarometric pressure during starting because there is less oxygen ataltitude than when at sea level. Once the transition to the alternatespark control method is complete, the routine is exited.

[0051] Referring to FIG. 4, a flowchart of an alternate embodiment offueled cylinder event based spark control. In step 410, engine operatingconditions are read. Operating conditions are determined by measuringengine coolant temperature, engine air temperature, barometric pressure,catalyst temperature, time since engine last operated (soak time), andparameters alike. These parameters are used to compensate the enginespark angle request in steps 418 and 420. In step 412, the routinedetermines if the engine is rotating. If not, the routine waits untilrotation is detected. If rotation is detected, the routine continues onto steps 414 and 424 The final spark demand is the sum of two operationsthat take separate paths in the figure.

[0052] The left path begins at step 414, where controller 12 decides todeliver spark based on fueled cylinder events. If the current number offueled cylinder events is less than the calibration parameter EVT_LIM,then the routine proceeds to step 416. If the number of events isgreater than or equal to EVT_LIM, the routine proceeds to step 426. Instep 416, the controller determines if a fueled cylinder event hasoccurred. If so, the fueled cylinder event counter is incremented andthe routine proceeds to step 418. If no newly fueled cylinder eventshave occurred, the routine retains the last fueled cylinder event sparkvalue and proceeds to step 426.

[0053] In step 418, the desired spark request is looked up from thetable in FIG. 8, FNESPK. After the desired spark is determined, theroutine advances to step 420.

[0054] In step 420, the spark may be modified depending on engineoperating conditions observed in step 410. Compensation for barometricpressure is stored in a function named FNBP. Depending on where nominalbarometric pressure is defined in the function, spark is advanced orretarded from that point to achieve desired emissions and engine speedrun-up. The function has x dimensions of inches of Mercury and ydimensions of change (Δ) in spark, with units of angular degrees.Positive values in the function advance spark and negative values retardspark.

[0055] Compensation for air charge temperature is stored in a functionnamed FNACT. Depending on where nominal air charge temperature isdefined in the function, spark is advanced or retarded from that pointto achieve desired emissions and engine speed run-up. The function has xdimensions of air charge temperature in degrees Fahrenheit and ydimensions of change (Δ) in spark, with units of angular degrees.

[0056] Compensation is also provided for catalyst temperature infunction FNCAT. In general, FNCAT is calibrated to retard spark angle atlower catalyst temperatures and advances spark angle at higher catalysttemperatures. Catalyst temperature maybe measured or inferred. Thefunction has x dimensions of degrees Fahrenheit and y dimensions ofchange (Δ) in spark, with units of angular degrees. Compensation forsoak time is captured in function FNST. In general, FNST is calibratedto retard spark as soak time increases and advance spark as soak timeincreases. The function has x dimensions of soak time in seconds and ydimensions of change (Δ) in spark, with units of angular degrees.

[0057] All sources of spark compensation are combined into a singlechange in spark that is used to modify the spark angle from step 418.The routine then proceeds to step 422 where compensation for operatorinput is provided. Operator input may take a number of forms including;changing throttle position, load request via electronic throttle orelectronically controlled valves, torque request, air conditioning, orany device or system that increases load on the engine. In this example,operator input is throttle position. If the operator inputs a demand tothe throttle, the throttle signal is processed through the functionFNTHROTTLE. The function has x dimensions of throttle position withunits of volts and y dimensions of change (Δ) in spark, with units ofangular degrees. The function is calibrated to advance spark as thethrottle input increases, other inputs would follow the same form,increasing user demand advances spark. If the operator input issubstantially zero, or being less than a predetermined amount, thefunction provides no compensation for the operator input. The routinethen proceeds to step 426.

[0058] The right path of the routine begins at step 424, where sparkbased on operating parameters is determined by any suitable method. Theroutine then continues on to step 426. In step 426, spark angles fromsteps 422 and 424 are summed together to create final spark. Thestructure and calibration of this routine allows spark control to bebased solely on fueled cylinder event number, or an alternative methodindependent of fueled cylinder event number (e.g., based on time, orspeed and load), or any combination of the two depending on thecalibration. The routine then proceeds to step 428, where spark isdelivered to the engine. After spark is delivered to the engine theroutine is exited until called again.

[0059] Referring to FIG. 5, a flowchart of an alternate embodiment ofsynchronized cylinder event based spark control. In step 510, engineoperating conditions are read. Operating conditions are determined bymeasuring engine coolant temperature, engine air temperature, barometricpressure, catalyst temperature, time since engine last operated (soaktime), and parameters alike. These parameters are used to compensate theengine spark angle request in steps 520 and 522. In step 512, theroutine determines if the engine is rotating. If not, the routine waitsuntil rotation is detected. If rotation is detected, the routinecontinues on to steps 514 and 526. The final spark demand is the sum oftwo operations that take separate paths in the figure.

[0060] The left path begins at step 514, where controller 12 decides todeliver spark based on synchronized cylinder events. If the currentnumber of synchronized cylinder events is less than the calibrationparameter EVT_LIM, then the routine proceeds to step 516. If the numberof events is greater than or equal to EVT_LIM, the routine proceeds tostep 528. In step 516, the controller determines if a synchronizedcylinder event has occurred. If so, the synchronized cylinder eventcounter is incremented and the routine proceeds to step 518. If no newlysynchronized cylinder events have occurred, the routine retains the lastsynchronized cylinder event spark value and proceeds to step 528.

[0061] Engine and controller synchronization is determined in step 518.If the controller observes cam and crank signals that allowdetermination of engine position, the engine controller operations andengine timing align, becoming synchronized. Upon synchronization theevent counter is set to zero and the routine continues to step 520. Ifthe engine and the controller are already synchronized, the routineagain proceeds to step 520. If synchronization is not established and ifsynchronization cannot be established, the routine returns to step 528.

[0062] In step 520, the desired spark request is looked-up from a tablesimilar to the table in FIG. 8, FNESPK. However, spark values used instep 520 are based on cylinder events after synchronization instead offueled cylinder events as described by FIG. 8. After the desired sparkis determined, the routine advances to step 522.

[0063] In step 522, the spark may be modified depending on engineoperating conditions observed in step 510. Compensation for barometricpressure is stored in a function named FNBP. Depending on where nominalbarometric pressure is defined in the function, spark is advanced orretarded from that point to achieve desired emissions and engine speedrun-up. The function has x dimensions of inches of Mercury and ydimensions of change (Δ) in spark, with units of angular degrees.Positive values in the function advance spark and negative values retardspark.

[0064] Compensation for air charge temperature is stored in a functionnamed FNACT. Depending on where nominal air charge temperature isdefined in the function, spark is advanced or retarded from that pointto achieve desired emissions and engine speed run-up. The function has xdimensions of air charge temperature in degrees Fahrenheit and ydimensions of change (Δ) in spark, with units of angular degrees.

[0065] Compensation is also provided for catalyst temperature infunction FNCAT. In general, FNCAT is calibrated to retard spark angle atlower catalyst temperatures and advances spark angle at higher catalysttemperatures. Catalyst temperature maybe measured or inferred. Thefunction has x dimensions of degrees Fahrenheit and y dimensions ofchange (Δ) in spark, with units of angular degrees. Compensation forsoak time is captured in function FNST. In general, FNST is calibratedto retard spark as soak time increases and advance spark as soak timeincreases. The function has x dimensions of soak time in seconds and ydimensions of change (Δ) in spark, with units of angular degrees.

[0066] All sources of spark compensation are combined into a singlechange in spark that is used to modify the spark angle from step 520.The routine then proceeds to step 524 where compensation for operatorinput is provided. Operator input may take a number of forms including;changing throttle position, load request via electronic throttle orelectronically controlled valves, torque request, air conditioning, orany device or system that increases load on the engine. In this example,operator input is throttle position. If the operator inputs a demand tothe throttle, the throttle signal is processed through the functionFNTHROTTLE. The function has x dimensions of throttle position withunits of volts and y dimensions of change (Δ) in spark, with units ofangular degrees. The function is calibrated to advance spark as thethrottle input increases, other inputs would follow the same form,increasing user demand advances spark. If the operator input issubstantially zero, or being less than a predetermined amount, thefunction provides no compensation for the operator input. The routinethen proceeds to step 528.

[0067] The right path of the routine begins at step 526, where sparkbased on operating parameters is determined by any suitable method. Theroutine then continues on to step 528. In step 528, spark angles fromsteps 524 and 526 are summed together to create final spark. Thestructure and calibration of this routine allows spark control to bebased solely on synchronized cylinder event number, or an alternativemethod independent of synchronized cylinder event number (e.g., based ontime, or speed and load), or any combination of the two depending on thecalibration. The routine then proceeds to step 530, where spark isdelivered to the engine. After spark is delivered to the engine theroutine is exited until called again.

[0068] Referring to FIG. 6, a plot showing parameters of interest duringa start where conventional time based spark is used. Signal magnitudeshave been normalized so that the trajectories of the signals can beviewed together. FIGS. 6 and 7 are scaled equally to allow objectivecomparison of the two methods.

[0069] Engine speed (RPM), Hydrocarbon (HCPPM) emissions concentration,time since start (ATMR1), and spark (SAF) are plotted to show typicalsignal trajectories during a cold start. Notice the relationship betweenthe signals. Spark is held constant until a predetermined engine speedis observed, then it follows a trajectory described by a table withindices of engine coolant temperature and time since start. Thedelivered spark is not correlated to cylinder events. The approachresults in higher hydrocarbon emissions (HCPPM) since individual eventsare not controlled. Note that signal ATMR1 increases linearly and isindependent of engine speed or number of fueled or unfueled cylinderevents.

[0070] Referring to FIG. 7, a plot showing the same parameters as FIG.6, but where fueled cylinder event based spark is used according to oneembodiment of the present invention. Signal magnitudes have beennormalized so that the trajectories of signals can be viewed together.

[0071] Engine speed (RPM), hydrocarbons (HCPPM), number of fueledcylinder events (EVTCNT), and spark (SAFTOT) are plotted to show typicalsignal trajectories during a start. Notice the relationship between thesignals, spark is allowed to change based on fueled cylinder eventnumber. The spark follows a trajectory described by a table FNESPK. Thedelivered spark is linked to a specific synchronized cylinder eventwhich results in reduced HC emissions while producing sufficient torqueto run the engine speed up to idle.

[0072] Referring to FIG. 8, a table FNESPK, showing example sparkdesired based on engine coolant temperature and fueled cylinder eventnumber. The table is used to determine the spark to be delivered to aspecific fueled cylinder event. The table has x dimensions of enginetemperature, in degrees Fahrenheit, and y dimensions of fueled cylinderevent number. Typically, table columns and rows are defined by theresolution needed to support the combustion process. In general, enoughrows are provided to control individual cylinder events over the firsttwo engine cycles, plus a few additional rows. The additional rows areused to define spark over a number of fueled cylinder events, reflectingstabilization in the combustion process as the number of fueled cylinderevents increases. Negative values in the table refer to ignition anglesafter-top-dead-center of the compression stroke, while positive valuesrefer to angles before-top-dead center of compression of the compressionstroke.

[0073] Regarding, the shape of the columns, spark is delivered at aconstant engine temperature over a number of cylinder events. A retardedspark angle is requested in the first two rows, and then the spark angleincreases. This spark profile recognizes the changing requirements ofspark during a start. The first two cylinder events can tolerate morespark retard because the cylinder charge is nearly free of residualgasses. The next few events request increased spark, to support enginespeed run-up and combustion as residuals increase.

[0074] Referring to FIG. 9, a flowchart of a routine performed bycontroller 12 to control fueling based on a sequential strategy isshown. Sequential fueling strategies deliver unique fuel amounts to eachcylinder based on the corresponding air charge of the cylinder. Fuel maybe delivered on a open or close intake valves. By matching individualfuel amounts with individual air amounts, sequential fueling strategiesoffer the opportunity to improve emissions Additional emissionsreductions can be achieved by matching spark to individual cylinderevents. Sequential fuel is delivered after the engine and controller 12are synchronized. In step 910, engine operating conditions are read.Operating conditions are determined by measuring engine coolanttemperature and parameters alike. These parameters are used tocompensate engine fuel amount estimates in step 918. In step 912, theroutine decides whether to synchronize air and fuel delivery, step 914,or to proceed and retrieve the engine air amount in step 916. If the airand fuel have not been synchronized, the controller 12 aligns thetwo-event predicted engine air amount with the next cylinder on intakestroke. In step 716, the engine air amount is retrieved from an engineair amount estimation routine. In step 718, the desired Lambda isretrieved from predetermined values stored in a table. The table has xdimension units of engine coolant temperature (ECT) and y dimensionunits of time since start. Lambda is calculated as follows:${{Lambda}(\lambda)} = \frac{\frac{Air}{Fuel}}{\frac{Air}{{Fuel}_{stoichiometry}}}$

[0075] In step 920, fuel mass is calculated based on the engine airamount from step 916, and the Lambda value retrieved in step 918. Fuelmass is calculated as follows:${Fuel\_ Mass} = \frac{{Engine\_ Air}{\_ Amount}}{\frac{Air}{{Fuel}_{stoichiometry}}*{Lambda}}$

[0076] In step 922, injector pulse width is calculated using a functionwhose input is desired fuel mass and whose output is injector pulsewidth. In step 924, the injectors are activated for the durationdetermined in step 922. This process occurs for every injection event,using cylinder specific air amounts, producing cylinder specificfueling.

[0077] Referring to FIG. 10, a flowchart of a routine performed bycontroller 12 to provide Big-Bang fueling. Big-Bang fueling decreasesthe time to start since engine synchronization is not required. Optimalemissions are not achieved using Big-bang fueling, but emissions can bereduced while decreasing starting time when cylinder event based sparkis performed with Big-bang fueling. Emissions reductions are a result ofmatching spark with cylinders that have received the complete injectionamount. In step 1010 engine operating conditions are read. Operatingconditions are determined by measuring engine coolant temperature andparameters alike. These parameters are used to compensate engine fuelamount estimates in step 1014. In step 1012, engine air amount isretrieved from calculations made in step 1012. In step 1014, the desiredLambda is looked-up using the same method used in step 1018. In step1016, the routine determines if the engine is rotating. If so, allinjectors are fired simultaneously in step 1018, where the firstcylinder event is detected. If the engine is not rotating, fuel is notdelivered and the routine waits until rotation is detected. In step1020, the engine controller 12 determines engine position using signalsprovided by crankshaft 118 and camshaft 150 sensors. Once engineposition is determined, predicted engine air amount and fuel deliveryare aligned. Big Bang fueling provides fuel for two engine revolutionsallowing the controller 12 to wait N3 cylinder events, step 1022, beforebeginning SEFI fueling, step 1024. Note that N3 is the number ofcylinders in the engine.

[0078] As will be appreciated by one of ordinary skill in the art, theroutines described in FIGS. 2, 3, 7, and 8 may represent one or more ofany number of processing strategies such as event-driven,interrupt-driven, multi-tasking, multi-threading, and the like. As such,various steps or functions illustrated may be performed in the sequenceillustrated, in parallel, or in some cases omitted. Likewise, the orderof processing is not necessarily required to achieve the objects,features and advantages of the invention, but is provided for ease ofillustration and description. Although not explicitly illustrated, oneof ordinary skill in the art will recognize that one or more of theillustrated steps or functions may be repeatedly performed depending onthe particular strategy being used.

[0079] This concludes the description of the invention. The reading ofit by those skilled in the art would bring to mind many alterations-andmodifications without departing from the spirit and the scope of theinvention. For example, I3, I4, I5, V6, V8, V10, and V12 enginesoperating in natural gas, gasoline, or alternative fuel configurationscould use the present invention to advantage. Accordingly, it isintended that the scope of the invention is defined by the followingclaims:

1. A spark ignition controlling method for an internal combustion engineof a vehicle, comprising: counting a number of cylinder events aftersynchronization between engine timing and an engine controller isdetermined; and adjusting cylinder spark angle based on said countednumber of cylinder events.
 2. The method as set forth in claim 1 whereinsaid cylinder spark angle is adjusted in accordance with an increase inthe said number of cylinder events.
 3. The method as set forth in claim1 wherein said cylinder spark angle is further adjusted based on ambientair temperature and engine temperature.
 4. The method as set forth inclaim 1 wherein said cylinder spark angle is further adjusted based onbarometric pressure.
 5. The method as set forth in claim 1 wherein saidcylinder spark angle is further adjusted based on catalyst temperature.6. The method as set forth in claim 1 wherein said cylinder spark angleis further adjusted based on a duration since the engine last operated.7. The method as set forth in claim 1 wherein said cylinder spark angleis further adjusted based on air injected into the exhaust system. 8.The method as set forth in claim 1 wherein said cylinder spark angle isfurther adjusted based on operator input.
 9. The method as set forth inclaim 8 wherein said operator input request is an operator opening amechanical throttle body.
 10. The method as set forth in claim 8 whereinsaid operator input request is made by the operator acting on a deviceof the vehicle.
 11. The method as set forth in claim 1 wherein injectedfuel is adjusted based on said counted number of cylinder events. 12.The method as set forth in claim 11 wherein injected fuel is deliveredsynchronous to said engine timing.
 13. The method as set forth in claim11 wherein injected fuel is delivered asynchronous of said engine timingat least once during a start; and injecting fuel synchronous to saidengine timing after said start.
 14. A spark ignition controlling methodfor an internal combustion engine, comprising: counting a number ofcylinder events after synchronization between engine timing and anengine controller is determined; adjusting a first amount of saidcylinder spark angle based on said counted number of cylinder events;adjusting a second amount of said cylinder spark angle independent ofsaid counted number of cylinder events; and delivering spark to theengine based on said first and second amount.
 15. A spark ignitioncontrolling method for an internal combustion engine, comprising:counting a number of cylinder events from a start of an internalcombustion engine; adjusting a first amount of said cylinder spark anglebased on said counted number of cylinder events; adjusting a secondamount of said cylinder spark angle independent of said counted numberof cylinder events; and delivering spark to the engine based on saidfirst and second amount.
 16. A spark ignition controlling method for aninternal combustion engine of a vehicle, comprising: counting a numberof cylinder events after synchronization between engine timing and aengine controller is determined; and adjusting cylinder spark anglebased on said counted number of cylinder events while operator input issubstantially zero.
 17. The method as set forth in claim 16 wherein saidsubstantially zero is less than 1-10% of full range or less than apredetermined constant.
 18. The method as set forth in claim 16 whereinsaid operator input is an operator opening a mechanical throttle body.19. The method as set forth in claim 16 wherein said operator inputrequest is made by the operator acting on a device of the vehicle.
 20. Aspark ignition controlling method for an internal combustion engine,comprising: counting a number of cylinder events from a start of aninternal combustion engine; and calculating cylinder spark angle basedon said counted number of cylinder events while operator input issubstantially zero.
 21. The method as set forth in claim 20 wherein saidsubstantially zero is less than 1-10% of full range or less than apredetermined constant.
 22. The method as set forth in claim 20 whereinsaid cylinder spark angle is adjusted in accordance with an increase inthe number of cylinder events.
 23. The method as set forth in claim 20wherein said cylinder spark angle is further adjusted based on ambientair temperature and engine temperature.
 24. The method as set forth inclaim 20 wherein said cylinder spark angle is further adjusted based onbarometric pressure.
 25. The method as set forth in claim 20 whereinsaid cylinder spark angle is further adjusted based on catalysttemperature.
 26. The method as set forth in claim 20 wherein saidcylinder spark angle is further adjusted based on a soak timer.
 27. Themethod as set forth in claim 20 wherein said cylinder spark angle isfurther adjusted based on air injected into the exhaust system.
 28. Themethod as set forth in claim 20 wherein injected fuel is adjusted basedon said counted number of cylinder events.
 29. The method as set forthin claim 28 wherein injected fuel is delivered synchronous to saidengine timing.
 30. The method as set forth in claim 28 wherein injectedfuel is delivered asynchronous of said engine timing at least onceduring a start; and injecting fuel synchronous to said engine timingafter said start.
 31. A computer readable storage medium having storeddata representing instructions executable by a computer to control aspark ignition internal combustion engine of a vehicle, said storagemedium comprising: instructions for counting a number of cylinder eventsafter synchronization between engine timing and an engine controller isdetermined; and instructions for adjusting cylinder spark angle based onsaid counted number of cylinder events.